
import router from '@/router' // 路径只写文件夹名，默认会找文件夹里面的名字叫index的文件
import store from '@/store'

router.beforeEach(async(to, from, next) => {
  const token = localStorage.getItem('house-token-8')
  console.log('进入守卫')
  const whiteArr = ['/404', '/login']
  // 如果没有token,并且去往白名单内的页面,放行,否则跳转到登录页面
  if (!token) {
    console.log('没有token')
    if (whiteArr.indexOf(to.path) !== -1) {
      next()
    } else {
      next('/login')
    }
  } else { // 有token,表示已登录,如果去往登录页面,跳转到首页
    console.log('有token')
    if (to.path === '/login' && token) {
      console.log('进入')
      next('/')
    } else {
      console.log('进入2')
      // 设置store的问题
      if (!store.state.user.userInfo.id) {
        await store.dispatch('user/updateUserinfo')

        // // 设置动态添加路由权限
        const routes = await store.dispatch('permission/filterRoutes',
          store.state.user.userPermissions.menus)

        // // 动态添加路由权限时会重复跳转页面,死循环
        router.addRoutes([...routes, { path: '*', redirect: '/404', hidden: true }])

        router.push(to.path)
        // // 动态添加路由需要跳转
        console.log('456')
      }
      next()
    }
  }
})
